#include<stdio.h>

/*a.先判断两个链表最后一个节点是否相等，如果相等则表示有相交节点，否则返回NULL；
b.当有相交节点时，则让两个链表从长度相等的地方往后走，则要让长链表先想后走两个链表的绝对值差；
c.找到两个链表的第一个相交节点并返回*/

typedef struct listnode
{
    int data;
    struct listnode* next;

}list;

list* getintersection(list* headA,list* headB)
{
    list* nA=headA;
    list* nB=headB;
    int a=0;
    int b=0;

    while(nA->next)
    {
        ++a;
        nA=nA->next;
    }
    while(nB->next)
    {
        ++b;
        nB=nB->next;
    }
    if(nA!=nB)
    (
        return NULL;
    )
    int len=abs(a-b);
    list* longest=headA;
    list* shortest=headB;
    if(nA<nB)
    {
        list* longest=headB;
        list* shortest=headA;
    }
    while(longest!=shortest)
    {
        longest=longest->next;
        shortest=shortest->next;
    }
    return longest;

}
int main()
{

    return 0;
}